// 修改模型矩阵信息
function update3dTilesMatrix(opt = {}) {
    const { tileSet, lng, lat, alt, x, y, z, scale } = opt
    console.log(opt)
    const modelMatrix = tileSet.root.transform
    // 获取模型默认位置
    const position = Cesium.Matrix4.getTranslation(
        modelMatrix,
        new Cesium.Cartesian3()
    )
    const cartographic = Cesium.Cartographic.fromCartesian(position)
    const longitude = Cesium.Math.toDegrees(cartographic.longitude)
    const latitude = Cesium.Math.toDegrees(cartographic.latitude)
    const altitude = cartographic.height
    const _lng = lng ?? Number(longitude.toFixed(6)) // 经度
    const _lat = lat ?? Number(latitude.toFixed(6)) // 纬度
    const _alt = alt ?? Number(altitude.toFixed(4)) // 高度
    // 位置变换
    const _position = Cesium.Cartesian3.fromDegrees(_lng, _lat, _alt)
    // 变换后矩阵
    const m = Cesium.Transforms.eastNorthUpToFixedFrame(_position)
    // 旋转x轴
    if (x || x === 0) {
        const mx = Cesium.Matrix3.fromRotationX(Cesium.Math.toRadians(x))
        const rotate = Cesium.Matrix4.fromRotationTranslation(mx)
        Cesium.Matrix4.multiply(m, rotate, m)
    }
    // 旋转y轴
    if (y || y === 0) {
        const my = Cesium.Matrix3.fromRotationY(Cesium.Math.toRadians(y))
        const rotate = Cesium.Matrix4.fromRotationTranslation(my)
        Cesium.Matrix4.multiply(m, rotate, m)
    }
    // 旋转z轴
    if (z || z === 0) {
        const mz = Cesium.Matrix3.fromRotationZ(Cesium.Math.toRadians(z))
        const rotate = Cesium.Matrix4.fromRotationTranslation(mz)
        Cesium.Matrix4.multiply(m, rotate, m)
    }
    // 缩放
    if (scale || scale === 0) {
        const _scale = Cesium.Matrix4.fromUniformScale(scale)
        Cesium.Matrix4.multiply(m, _scale, m)
    }
    // 修改自定义customAttr中存储的位置信息，用于后面反显
    // tileSet.customAttr.position = {
    //     lng: _lng,
    //     lat: _lat,
    //     alt: _alt,
    // }
    // tileSet.customAttr.rotation = {
    //     x: x ?? 0.0,
    //     y: y ?? 0.0,
    //     z: z ?? 0.0,
    // }
    // tileSet.customAttr.scale = scale ?? 1.0
    return m
}

function queryBimData() {
    var basePath = 'http://59.110.126.246:8085/mapdata/bimdata'
    var data = [
        {
            url: basePath + '/D1/tileset.json',
            lng: 120.62103879436891,
            lat: 30.162850171996755,
            x: -40,
            d: 'D1',
            title: 'D1',
            height: 25,
        },
        {
            url: basePath + '/D2/tileset.json',
            lng: 120.62142842468931,
            lat: 30.162572802462584,
            x: -42,
            d: 'D2',
            title: 'D2',
            height: 23,
        },
        // {
        //     url: basePath + '/D3/tileset.json',
        //     lng: 120.62176075243005,
        //     lat: 30.16282320818289,
        //     x: -15,
        //     d: 'D3',
        //     title: 'D3',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/D4/tileset.json',
        //     lng: 120.62200204829813,
        //     lat: 30.163060488118973,
        //     x: -10,
        //     d: 'D4',
        //     title: 'D4',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/D5/tileset.json',
        //     lng: 120.62142613490892,
        //     lat: 30.16319945438769,
        //     x: -15,
        //     d: 'D5',
        //     title: 'D5',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/D6/tileset.json',
        //     lng: 120.62221795967011,
        //     lat: 30.163295199142983,
        //     x: -15,
        //     d: 'D6',
        //     title: 'D6',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/D7/tileset.json',
        //     lng: 120.62164818277462,
        //     lat: 30.163433719982642,
        //     x: -15,
        //     d: 'D7',
        //     title: 'D7',
        //     height: 25,
        // },
        // {
        //     url: basePath + '/D8/tileset.json',
        //     lng: 120.62242996215274,
        //     lat: 30.163525803392986,
        //     x: -15,
        //     d: 'D8',
        //     title: 'D8',
        //     height: 25,
        // },
        // {
        //     url: basePath + '/D9/tileset.json',
        //     lng: 120.6218703600572,
        //     lat: 30.163670831444627,
        //     x: -15,
        //     d: 'D9',
        //     title: 'D9',
        //     height: 25,
        // },
        // {
        //     url: basePath + '/D10/tileset.json',
        //     lng: 120.62271057507893,
        //     lat: 30.163740109838748,
        //     x: -15,
        //     d: 'D10',
        //     title: 'D10',
        //     height: 25,
        // },
        // {
        //     url: basePath + '/D11/tileset.json',
        //     lng: 120.62210357159597,
        //     lat: 30.16388858074902,
        //     x: -10,
        //     d: 'D11',
        //     title: 'D11',
        //     height: 25,
        // },
        // {
        //     url: basePath + '/D12/tileset.json',
        //     lng: 120.62237408731339,
        //     lat: 30.164128116697864,
        //     x: -15,
        //     d: 'D12',
        //     title: 'D12',
        //     height: 25,
        // },
        // {
        //     url: basePath + '/D13/tileset.json',
        //     lng: 120.62260349703965,
        //     lat: 30.164348212084473,
        //     x: -15,
        //     d: 'D13',
        //     title: 'D13',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/D14/tileset.json',
        //     lng: 120.62297890176063,
        //     lat: 30.16424861582512,
        //     x: -15,
        //     d: 'D14',
        //     title: 'D14',
        //     height: 25,
        // },
        // {
        //     url: basePath + '/D17/tileset.json',
        //     lng: 120.62280173103721,
        //     lat: 30.164587108646704,
        //     x: -15,
        //     d: 'D17',
        //     title: 'D17',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/D16/tileset.json',
        //     lng: 120.62333528771202,
        //     lat: 30.164455197655663,
        //     x: -15,
        //     d: 'D16',
        //     title: 'D16',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/D19/tileset.json',
        //     lng: 120.6230459054544,
        //     lat: 30.16481495905548,
        //     x: -15,
        //     d: 'D19',
        //     title: 'D19',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/D18/tileset.json',
        //     lng: 120.62357785125653,
        //     lat: 30.164687763444153,
        //     x: -15,
        //     d: 'D18',
        //     title: 'D18',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/D21/tileset.json',
        //     lng: 120.62324133925291,
        //     lat: 30.16503903599516,
        //     x: -15,
        //     d: 'D21',
        //     title: 'D21',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/D20/tileset.json',
        //     lng: 120.6238099678103,
        //     lat: 30.164921040859465,
        //     x: -15,
        //     d: 'D20',
        //     title: 'D20',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/22/tileset.json',
        //     lng: 120.62348963159629,
        //     lat: 30.165329821956927,
        //     x: -15,
        //     d: 'D23',
        //     title: 'D23',
        //     height: 60,
        // },
        // {
        //     url: basePath + '/22/tileset.json',
        //     lng: 120.62406107892012,
        //     lat: 30.165148662457685,
        //     x: -15,
        //     d: 'D22',
        //     title: 'D22',
        //     height: 60,
        // },
        // {
        //     url: basePath + '/22/tileset.json',
        //     lng: 120.62391343729603,
        //     lat: 30.16572297008838,
        //     x: -15,
        //     d: 'D25',
        //     title: 'D25',
        //     height: 60,
        // },
        // {
        //     url: basePath + '/D24/tileset.json',
        //     lng: 120.62432977192059,
        //     lat: 30.165520513538812,
        //     x: -15,
        //     d: 'D24',
        //     title: 'D24',
        //     height: 67,
        // },

        // {
        //     url: basePath + '/B1/B1D1/tileset.json',
        //     lng: 120.6126159244893,
        //     lat: 30.159108293085133,
        //     x: -42,
        //     d: 'B1D1',
        //     title: 'D1',
        //     height: 25,
        // },
        // {
        //     url: basePath + '/B1/B1D2/tileset.json',
        //     lng: 120.61306604459931,
        //     lat: 30.15876565343761,
        //     x: -41,
        //     d: 'B1D2',
        //     title: 'D2',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B1/B1D3/tileset.json',
        //     lng: 120.61424446592378,
        //     lat: 30.15786570192523,
        //     x: -40,
        //     d: 'B1D3',
        //     title: 'D3',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B1/B1D4/tileset.json',
        //     lng: 120.61480826684785,
        //     lat: 30.157434755360315,
        //     x: -39,
        //     d: 'B1D4',
        //     title: 'D4',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B1/B1D5/tileset.json',
        //     lng: 120.61271659397717,
        //     lat: 30.159368465073575,
        //     x: -39,
        //     d: 'B1D5',
        //     title: 'D5',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B1/B1D6/tileset.json',
        //     lng: 120.61329179387341,
        //     lat: 30.159014581999275,
        //     x: -39,
        //     d: 'B1D6',
        //     title: 'D6',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B1/B1D7/tileset.json',
        //     lng: 120.61453054029889,
        //     lat: 30.15808098038718,
        //     x: -39,
        //     d: 'B1D7',
        //     title: 'D7',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B1/B1D8/tileset.json',
        //     lng: 120.6150411076277,
        //     lat: 30.157685712414238,
        //     x: -39,
        //     d: 'B1D8',
        //     title: 'D8',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B1/B1D9/tileset.json',
        //     lng: 120.6129177980519,
        //     lat: 30.15959343004208,
        //     x: -39,
        //     d: 'B1D9',
        //     title: 'D9',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B1/B1D10/tileset.json',
        //     lng: 120.61386255791948,
        //     lat: 30.158849670084702,
        //     x: -41,
        //     d: 'B1D10',
        //     title: 'D10',
        //     height: 25,
        // },
        // {
        //     url: basePath + '/B1/B1D11/tileset.json',
        //     lng: 120.61423292449332,
        //     lat: 30.158585582071478,
        //     x: -42,
        //     d: 'B1D11',
        //     title: 'D11',
        //     height: 25,
        // },
        // {
        //     url: basePath + '/B1/B1D12/tileset.json',
        //     lng: 120.61354005202638,
        //     lat: 30.159267162377013,
        //     x: -41,
        //     d: 'B1D12',
        //     title: 'D12',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B1/B1D13/tileset.json',
        //     lng: 120.6147635881036,
        //     lat: 30.15836136514844,
        //     x: -39,
        //     d: 'B1D13',
        //     title: 'D13',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B1/B1D14/tileset.json',
        //     lng: 120.61527510668985,
        //     lat: 30.15796050202005,
        //     x: -41,
        //     d: 'B1D14',
        //     title: 'D14',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B1/B1D15/tileset.json',
        //     lng: 120.6130819314762,
        //     lat: 30.15982669709323,
        //     x: -41,
        //     d: 'B1D15',
        //     title: 'D15',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B1/B1D16/tileset.json',
        //     lng: 120.61406800242486,
        //     lat: 30.159038753178397,
        //     x: -42,
        //     d: 'B1D16',
        //     title: 'D16',
        //     height: 25,
        // },
        // {
        //     url: basePath + '/B1/B1D17/tileset.json',
        //     lng: 120.61443269203237,
        //     lat: 30.158790531829574,
        //     x: -42,
        //     d: 'B1D17',
        //     title: 'D17',
        //     height: 25,
        // },
        // {
        //     url: basePath + '/B1/B1D18/tileset.json',
        //     lng: 120.61375920034432,
        //     lat: 30.159479134494585,
        //     x: -42,
        //     d: 'B1D18',
        //     title: 'D18',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B1/B1D19/tileset.json',
        //     lng: 120.6149889601112,
        //     lat: 30.158568550774334,
        //     x: -40,
        //     d: 'B1D19',
        //     title: 'D19',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B1/B1D14/tileset.json',
        //     lng: 120.6154609158684,
        //     lat: 30.15820848979066,
        //     x: -42,
        //     d: 'B1D20',
        //     title: 'D20',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B1/B1D21/tileset.json',
        //     lng: 120.61324938990133,
        //     lat: 30.160050297915728,
        //     x: -41,
        //     d: 'B1D21',
        //     title: 'D21',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B1/B1D22/tileset.json',
        //     lng: 120.614259171071,
        //     lat: 30.159247918029383,
        //     x: -42,
        //     d: 'B1D22',
        //     title: 'D22',
        //     height: 25,
        // },
        // {
        //     url: basePath + '/B1/B1D23/tileset.json',
        //     lng: 120.61463021366983,
        //     lat: 30.158983023954594,
        //     x: -41,
        //     d: 'B1D23',
        //     title: 'D23',
        //     height: 25,
        // },
        // {
        //     url: basePath + '/B1/B1D14/tileset.json',
        //     lng: 120.61333375000709,
        //     lat: 30.160374675335202,
        //     x: -42,
        //     d: 'B1D24',
        //     title: 'D24',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B1/B1D5/tileset.json',
        //     lng: 120.61374301718337,
        //     lat: 30.160040555289484,
        //     x: -42,
        //     d: 'B1D25',
        //     title: 'D25',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B1/B1D27/tileset.json',
        //     lng: 120.61420978423065,
        //     lat: 30.159666744882365,
        //     x: -42,
        //     d: 'B1D26',
        //     title: 'D26',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B1/B1D27/tileset.json',
        //     lng: 120.61474422999412,
        //     lat: 30.159257829016205,
        //     x: -42,
        //     d: 'B1D27',
        //     title: 'D27',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B1/B1D28/tileset.json',
        //     lng: 120.61522928364745,
        //     lat: 30.158861650437288,
        //     x: -42,
        //     d: 'B1D28',
        //     title: 'D28',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B1/B1D29/tileset.json',
        //     lng: 120.61568760860679,
        //     lat: 30.158510497071518,
        //     x: -42,
        //     d: 'B1D29',
        //     title: 'D29',
        //     height: 23,
        // },

        // {
        //     url: basePath + '/B2/B2D1/tileset.json',
        //     lng: 120.62161048061444,
        //     lat: 30.1612496989007,
        //     x: -30,
        //     d: 'B2D1',
        //     title: 'D1',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B2/B2D2/tileset.json',
        //     lng: 120.62219727092571,
        //     lat: 30.160919979656875,
        //     x: -30,
        //     d: 'B2D2',
        //     title: 'D2',
        //     height: 25,
        // },
        // {
        //     url: basePath + '/B2/B2D3/tileset.json',
        //     lng: 120.62284000712397,
        //     lat: 30.160598601281897,
        //     x: -30,
        //     d: 'B2D3',
        //     title: 'D3',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B2/B2D4/tileset.json',
        //     lng: 120.62315972427533,
        //     lat: 30.160760242633533,
        //     x: -32,
        //     d: 'B2D4',
        //     title: 'D4',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B2/B2D5/tileset.json',
        //     lng: 120.62169767804346,
        //     lat: 30.161523345601957,
        //     x: -33,
        //     d: 'B2D5',
        //     title: 'D5',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B2/B2D6/tileset.json',
        //     lng: 120.62227116883969,
        //     lat: 30.1613272528858,
        //     x: -15,
        //     d: 'B2D6',
        //     title: 'D6',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B2/B2D7/tileset.json',
        //     lng: 120.62286510208088,
        //     lat: 30.161175320749432,
        //     x: -15,
        //     d: 'B2D7',
        //     title: 'D7',
        //     height: 25,
        // },
        // {
        //     url: basePath + '/B2/B2D8/tileset.json',
        //     lng: 120.62343130828565,
        //     lat: 30.16102387293419,
        //     x: -15,
        //     d: 'B2D8',
        //     title: 'D8',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B2/B2D9/tileset.json',
        //     lng: 120.62195672369693,
        //     lat: 30.16177482817929,
        //     x: -15,
        //     d: 'B2D9',
        //     title: 'D9',
        //     height: 25,
        // },
        // {
        //     url: basePath + '/B2/B2D10/tileset.json',
        //     lng: 120.62250566130425,
        //     lat: 30.16156368610037,
        //     x: -15,
        //     d: 'B2D10',
        //     title: 'D10',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B2/B2D11/tileset.json',
        //     lng: 120.6230833888238,
        //     lat: 30.161436320021323,
        //     x: -15,
        //     d: 'B2D11',
        //     title: 'D11',
        //     height: 25,
        // },
        // {
        //     url: basePath + '/B2/B2D12/tileset.json',
        //     lng: 120.62366476888468,
        //     lat: 30.161286615170802,
        //     x: -15,
        //     d: 'B2D12',
        //     title: 'D12',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B2/B2D13/tileset.json',
        //     lng: 120.62216400413267,
        //     lat: 30.162031602347515,
        //     x: -14,
        //     d: 'B2D13',
        //     title: 'D13',
        //     height: 25,
        // },
        // {
        //     url: basePath + '/B2/B2D14/tileset.json',
        //     lng: 120.62273316019825,
        //     lat: 30.161813248513717,
        //     x: -15,
        //     d: 'B2D14',
        //     title: 'D14',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B2/B2D15/tileset.json',
        //     lng: 120.62330792197069,
        //     lat: 30.161667487687662,
        //     x: -15,
        //     d: 'B2D15',
        //     title: 'D15',
        //     height: 25,
        // },
        // {
        //     url: basePath + '/B2/B2D16/tileset.json',
        //     lng: 120.62390123479614,
        //     lat: 30.161520425263035,
        //     x: -15,
        //     d: 'B2D16',
        //     title: 'D16',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B2/B2D17/tileset.json',
        //     lng: 120.62240227882464,
        //     lat: 30.162268716261206,
        //     x: -15,
        //     d: 'B2D17',
        //     title: 'D17',
        //     height: 25,
        // },
        // {
        //     url: basePath + '/B2/B2D18/tileset.json',
        //     lng: 120.62295797928917,
        //     lat: 30.16205090874039,
        //     x: -15,
        //     d: 'B2D18',
        //     title: 'D18',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B2/B2D19/tileset.json',
        //     lng: 120.62354634386737,
        //     lat: 30.16190513236697,
        //     x: -15,
        //     d: 'B2D19',
        //     title: 'D19',
        //     height: 25,
        // },
        // {
        //     url: basePath + '/B2/B2D20/tileset.json',
        //     lng: 120.62413044151047,
        //     lat: 30.16175461495602,
        //     x: -14,
        //     d: 'B2D20',
        //     title: 'D20',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B2/B2D21/tileset.json',
        //     lng: 120.62265414443796,
        //     lat: 30.16250238257676,
        //     x: -15,
        //     d: 'B2D21',
        //     title: 'D21',
        //     height: 25,
        // },
        // {
        //     url: basePath + '/B2/B2D22/tileset.json',
        //     lng: 120.62318875531453,
        //     lat: 30.162290254685438,
        //     x: -15,
        //     d: 'B2D22',
        //     title: 'D22',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B2/B2D23/tileset.json',
        //     lng: 120.62379026290924,
        //     lat: 30.16214563445681,
        //     x: -15,
        //     d: 'B2D23',
        //     title: 'D23',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B2/B2D24/tileset.json',
        //     lng: 120.62435929131594,
        //     lat: 30.161999046162027,
        //     x: -15,
        //     d: 'B2D24',
        //     title: 'D24',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B2/B2D25/tileset.json',
        //     lng: 120.62342520727238,
        //     lat: 30.162533968903006,
        //     x: -15,
        //     d: 'B2D25',
        //     title: 'D25',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B2/B2D26/tileset.json',
        //     lng: 120.62400941551853,
        //     lat: 30.16239458194812,
        //     x: -15,
        //     d: 'B2D26',
        //     title: 'D26',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B2/B2D27/tileset.json',
        //     lng: 120.62459422020565,
        //     lat: 30.162223205073094,
        //     x: -15,
        //     d: 'B2D27',
        //     title: 'D27',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B2/B2D28/tileset.json',
        //     lng: 120.62424245510701,
        //     lat: 30.16262269360602,
        //     x: -15,
        //     d: 'B2D28',
        //     title: 'D28',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B2/B2D29/tileset.json',
        //     lng: 120.62483384633087,
        //     lat: 30.162476543035407,
        //     x: -15,
        //     d: 'B2D29',
        //     title: 'D29',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B2/B2D30/tileset.json',
        //     lng: 120.62394637758133,
        //     lat: 30.163011329865114,
        //     x: -15,
        //     d: 'B2D30',
        //     title: 'D30',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B2/B2D31/tileset.json',
        //     lng: 120.62453198583502,
        //     lat: 30.16284752218056,
        //     x: -15,
        //     d: 'B2D31',
        //     title: 'D31',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B2/B2D32/tileset.json',
        //     lng: 120.62508227691794,
        //     lat: 30.16274817073483,
        //     x: -15,
        //     d: 'B2D32',
        //     title: 'D32',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B2/B2D33/tileset.json',
        //     lng: 120.62413250651143,
        //     lat: 30.163252666725082,
        //     x: -15,
        //     d: 'B2D33',
        //     title: 'D33',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B2/B2D34/tileset.json',
        //     lng: 120.6247461062742,
        //     lat: 30.163080348037983,
        //     x: -15,
        //     d: 'B2D34',
        //     title: 'D34',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B2/B2D35/tileset.json',
        //     lng: 120.62531801522658,
        //     lat: 30.16298254301844,
        //     x: -15,
        //     d: 'B2D35',
        //     title: 'D35',
        //     height: 25,
        // },
        // {
        //     url: basePath + '/B2/B2D36/tileset.json',
        //     lng: 120.62442819679046,
        //     lat: 30.163476142018986,
        //     x: -15,
        //     d: 'B2D36',
        //     title: 'D36',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B2/B2D37/tileset.json',
        //     lng: 120.62499364291116,
        //     lat: 30.163308712466623,
        //     x: -15,
        //     d: 'B2D37',
        //     title: 'D37',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B2/B2D38/tileset.json',
        //     lng: 120.6255570071543,
        //     lat: 30.163219027223374,
        //     x: -15,
        //     d: 'B2D38',
        //     title: 'D38',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B2/B2D39/tileset.json',
        //     lng: 120.62401543976314,
        //     lat: 30.163929118505312,
        //     x: -15,
        //     d: 'B2D39',
        //     title: 'D39',
        //     height: 25,
        // },
        // {
        //     url: basePath + '/B2/B2D40/tileset.json',
        //     lng: 120.62458768589642,
        //     lat: 30.16372248537528,
        //     x: -15,
        //     d: 'B2D40',
        //     title: 'D40',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B2/B2D41/tileset.json',
        //     lng: 120.62515575265519,
        //     lat: 30.163548406881112,
        //     x: -15,
        //     d: 'B2D41',
        //     title: 'D41',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B2/B2D42/tileset.json',
        //     lng: 120.62577902591109,
        //     lat: 30.163457955851538,
        //     x: -15,
        //     d: 'B2D42',
        //     title: 'D42',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B2/B2D43/tileset.json',
        //     lng: 120.62423044073042,
        //     lat: 30.164156844595928,
        //     x: -15,
        //     d: 'B2D43',
        //     title: 'D43',
        //     height: 25,
        // },
        // {
        //     url: basePath + '/B2/B2D44/tileset.json',
        //     lng: 120.62485345784047,
        //     lat: 30.163942774206298,
        //     x: -15,
        //     d: 'B2D44',
        //     title: 'D44',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B2/B2D45/tileset.json',
        //     lng: 120.62542108998042,
        //     lat: 30.163751113466176,
        //     x: -15,
        //     d: 'B2D45',
        //     title: 'D45',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B2/B2D46/tileset.json',
        //     lng: 120.62449132473637,
        //     lat: 30.164384616348205,
        //     x: -20,
        //     d: 'B2D46',
        //     title: 'D46',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B2/B2D47/tileset.json',
        //     lng: 120.62502766783409,
        //     lat: 30.16417650164807,
        //     x: -15,
        //     d: 'B2D47',
        //     title: 'D47',
        //     height: 25,
        // },
        // {
        //     url: basePath + '/B2/B2D48/tileset.json',
        //     lng: 120.62552533549727,
        //     lat: 30.163988898191803,
        //     x: -15,
        //     d: 'B2D48',
        //     title: 'D48',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B2/B2D49/tileset.json',
        //     lng: 120.62600668832522,
        //     lat: 30.163727828606604,
        //     x: -40,
        //     d: 'B2D49',
        //     title: 'D49',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B2/B2D50/tileset.json',
        //     lng: 120.6248001665347,
        //     lat: 30.16456543606539,
        //     x: -20,
        //     d: 'B2D50',
        //     title: 'D50',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B2/B2D51/tileset.json',
        //     lng: 120.62543147978072,
        //     lat: 30.16434837343861,
        //     x: -20,
        //     d: 'B2D51',
        //     title: 'D51',
        //     height: 25,
        // },
        // {
        //     url: basePath + '/B2/B2D52/tileset.json',
        //     lng: 120.62591177720621,
        //     lat: 30.164142370718785,
        //     x: -33,
        //     d: 'B2D52',
        //     title: 'D52',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B2/B2D53/tileset.json',
        //     lng: 120.62625224643494,
        //     lat: 30.163910084031777,
        //     x: -40,
        //     d: 'B2D53',
        //     title: 'D53',
        //     height: 25,
        // },

        // {
        //     url: basePath + '/B3/B3D1/tileset.json',
        //     lng: 120.62562604166238,
        //     lat: 30.16232011640382,
        //     x: -11,
        //     d: 'B3D1',
        //     title: 'D1',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B3/B3D2/tileset.json',
        //     lng: 120.62566263496957,
        //     lat: 30.162016413878394,
        //     x: -13,
        //     d: 'B3D2',
        //     title: 'D2',
        //     height: 25,
        // },
        // {
        //     url: basePath + '/B3/B3D3/tileset.json',
        //     lng: 120.62616963624497,
        //     lat: 30.161904162612835,
        //     x: -15,
        //     d: 'B3D3',
        //     title: 'D3',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B3/B3D4/tileset.json',
        //     lng: 120.62518811130143,
        //     lat: 30.161865945658192,
        //     x: -13,
        //     d: 'B3D4',
        //     title: 'D4',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B3/B3D5/tileset.json',
        //     lng: 120.6256549156256,
        //     lat: 30.16172809014637,
        //     x: -15,
        //     d: 'B3D5',
        //     title: 'D5',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B3/B3D6/tileset.json',
        //     lng: 120.62605974602367,
        //     lat: 30.161628558842196,
        //     x: -14,
        //     d: 'B3D6',
        //     title: 'D6',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B3/B3D7/tileset.json',
        //     lng: 120.62664209847871,
        //     lat: 30.161488920607177,
        //     x: -15,
        //     d: 'B3D7',
        //     title: 'D7',
        //     height: 25,
        // },
        // {
        //     url: basePath + '/B3/B3D8/tileset.json',
        //     lng: 120.62501708886901,
        //     lat: 30.161611895608306,
        //     x: -14,
        //     d: 'B3D8',
        //     title: 'D8',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B3/B3D9/tileset.json',
        //     lng: 120.62554639968216,
        //     lat: 30.1614575743428,
        //     x: -15,
        //     d: 'B3D9',
        //     title: 'D9',
        //     height: 25,
        // },
        // {
        //     url: basePath + '/B3/B3D10/tileset.json',
        //     lng: 120.62597064561723,
        //     lat: 30.16134503542695,
        //     x: -14,
        //     d: 'B3D10',
        //     title: 'D10',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B3/B3D11/tileset.json',
        //     lng: 120.6265058831453,
        //     lat: 30.161222957389672,
        //     x: -14,
        //     d: 'B3D11',
        //     title: 'D11',
        //     height: 25,
        // },
        // {
        //     url: basePath + '/B3/B3D12/tileset.json',
        //     lng: 120.62487036276114,
        //     lat: 30.161348773337483,
        //     x: -14,
        //     d: 'B3D12',
        //     title: 'D12',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B3/B3D13/tileset.json',
        //     lng: 120.62546481582902,
        //     lat: 30.161170659025398,
        //     x: -14,
        //     d: 'B3D13',
        //     title: 'D13',
        //     height: 25,
        // },
        // {
        //     url: basePath + '/B3/B3D14/tileset.json',
        //     lng: 120.62590510181268,
        //     lat: 30.16107090397789,
        //     x: -14,
        //     d: 'B3D14',
        //     title: 'D14',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B3/B3D15/tileset.json',
        //     lng: 120.62640254981297,
        //     lat: 30.16096097321143,
        //     x: -14,
        //     d: 'B3D15',
        //     title: 'D15',
        //     height: 25,
        // },
        // {
        //     url: basePath + '/B3/B3D16/tileset.json',
        //     lng: 120.62451614692044,
        //     lat: 30.16113097937685,
        //     x: -14,
        //     d: 'B3D16',
        //     title: 'D16',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B3/B3D17/tileset.json',
        //     lng: 120.62490395379234,
        //     lat: 30.16106781095135,
        //     x: -14,
        //     d: 'B3D17',
        //     title: 'D17',
        //     height: 25,
        // },
        // {
        //     url: basePath + '/B3/B3D18/tileset.json',
        //     lng: 120.6254930166536,
        //     lat: 30.16082036762008,
        //     x: -15,
        //     d: 'B3D18',
        //     title: 'D18',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B3/B3D19/tileset.json',
        //     lng: 120.62429365513982,
        //     lat: 30.160930640824086,
        //     x: -14,
        //     d: 'B3D19',
        //     title: 'D19',
        //     height: 25,
        // },
        // {
        //     url: basePath + '/B3/B3D20/tileset.json',
        //     lng: 120.62470488539192,
        //     lat: 30.160802552553406,
        //     x: -15,
        //     d: 'B3D20',
        //     title: 'D20',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B3/B3D21/tileset.json',
        //     lng: 120.62528393051893,
        //     lat: 30.160575778510103,
        //     x: -14,
        //     d: 'B3D21',
        //     title: 'D21',
        //     height: 25,
        // },
        // {
        //     url: basePath + '/B3/B3D22/tileset.json',
        //     lng: 120.62569569754869,
        //     lat: 30.16047203132741,
        //     x: -12,
        //     d: 'B3D22',
        //     title: 'D22',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B3/B3D23/tileset.json',
        //     lng: 120.62417900618367,
        //     lat: 30.16065554317707,
        //     x: -13,
        //     d: 'B3D23',
        //     title: 'D23',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B3/B3D24/tileset.json',
        //     lng: 120.62469123067523,
        //     lat: 30.160533627261945,
        //     x: -13,
        //     d: 'B3D24',
        //     title: 'D24',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B3/B3D25/tileset.json',
        //     lng: 120.62520053456744,
        //     lat: 30.160301857461474,
        //     x: -14,
        //     d: 'B3D25',
        //     title: 'D25',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B3/B3D26/tileset.json',
        //     lng: 120.62559779390304,
        //     lat: 30.160199940447494,
        //     x: -13,
        //     d: 'B3D26',
        //     title: 'D26',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B3/B3D27/tileset.json',
        //     lng: 120.62396536464917,
        //     lat: 30.16041521672736,
        //     x: -14,
        //     d: 'B3D27',
        //     title: 'D27',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B3/B3D28/tileset.json',
        //     lng: 120.62456770072241,
        //     lat: 30.16028110399299,
        //     x: -14,
        //     d: 'B3D28',
        //     title: 'D28',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B3/B3D29/tileset.json',
        //     lng: 120.62510906327918,
        //     lat: 30.160037465750023,
        //     x: -14,
        //     d: 'B3D29',
        //     title: 'D29',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B3/B3D30/tileset.json',
        //     lng: 120.62562460132045,
        //     lat: 30.15990698438988,
        //     x: -14,
        //     d: 'B3D30',
        //     title: 'D30',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B3/B3D31/tileset.json',
        //     lng: 120.62375531005359,
        //     lat: 30.16017879629334,
        //     x: -14,
        //     d: 'B3D31',
        //     title: 'D31',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B3/B3D32/tileset.json',
        //     lng: 120.62436327595447,
        //     lat: 30.160038142992336,
        //     x: -14,
        //     d: 'B3D32',
        //     title: 'D32',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B3/B3D33/tileset.json',
        //     lng: 120.6249780739416,
        //     lat: 30.159771607443082,
        //     x: -14,
        //     d: 'B3D33',
        //     title: 'D33',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B3/B3D34/tileset.json',
        //     lng: 120.62545059854405,
        //     lat: 30.159661493718078,
        //     x: -14,
        //     d: 'B3D34',
        //     title: 'D34',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B3/B3D35/tileset.json',
        //     lng: 120.62433985967588,
        //     lat: 30.15974500542778,
        //     x: -14,
        //     d: 'B3D35',
        //     title: 'D35',
        //     height: 25,
        // },
        // {
        //     url: basePath + '/B3/B3D36/tileset.json',
        //     lng: 120.62478124785563,
        //     lat: 30.159530491189203,
        //     x: -14,
        //     d: 'B3D36',
        //     title: 'D36',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B3/B3D37/tileset.json',
        //     lng: 120.62522247231287,
        //     lat: 30.159415872262227,
        //     x: -14,
        //     d: 'B3D37',
        //     title: 'D37',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B3/B3D38/tileset.json',
        //     lng: 120.62506589044809,
        //     lat: 30.159180078710044,
        //     x: -14,
        //     d: 'B3D38',
        //     title: 'D38',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B3/B3D39/tileset.json',
        //     lng: 120.62668125345729,
        //     lat: 30.159970434305704,
        //     x: -14,
        //     d: 'B3D39',
        //     title: 'D39',
        //     height: 25,
        // },
        // {
        //     url: basePath + '/B3/B3D40/tileset.json',
        //     lng: 120.62707841451565,
        //     lat: 30.159819040558128,
        //     x: -14,
        //     d: 'B3D40',
        //     title: 'D40',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B3/B3D41/tileset.json',
        //     lng: 120.62643516055736,
        //     lat: 30.1597408962677,
        //     x: -14,
        //     d: 'B3D41',
        //     title: 'D41',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B3/B3D42/tileset.json',
        //     lng: 120.62688191482079,
        //     lat: 30.159575290140573,
        //     x: -14,
        //     d: 'B3D42',
        //     title: 'D42',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B3/B3D43/tileset.json',
        //     lng: 120.62746915467666,
        //     lat: 30.159460995259595,
        //     x: -14,
        //     d: 'B3D43',
        //     title: 'D43',
        //     height: 25,
        // },
        // {
        //     url: basePath + '/B3/B3D44/tileset.json',
        //     lng: 120.62627673820583,
        //     lat: 30.159477956418155,
        //     x: -14,
        //     d: 'B3D44',
        //     title: 'D44',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B3/B3D45/tileset.json',
        //     lng: 120.62679853909805,
        //     lat: 30.15930006307355,
        //     x: -14,
        //     d: 'B3D45',
        //     title: 'D45',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B3/B3D46/tileset.json',
        //     lng: 120.62732898199118,
        //     lat: 30.159203844241313,
        //     x: -14,
        //     d: 'B3D46',
        //     title: 'D46',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B3/B3D47/tileset.json',
        //     lng: 120.62618644980581,
        //     lat: 30.159204006872264,
        //     x: -14,
        //     d: 'B3D47',
        //     title: 'D47',
        //     height: 25,
        // },
        // {
        //     url: basePath + '/B3/B3D48/tileset.json',
        //     lng: 120.62657971313056,
        //     lat: 30.159035654583982,
        //     x: -14,
        //     d: 'B3D48',
        //     title: 'D48',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B3/B3D49/tileset.json',
        //     lng: 120.62706140630134,
        //     lat: 30.15892798555539,
        //     x: -14,
        //     d: 'B3D49',
        //     title: 'D49',
        //     height: 23,
        // },
        // {
        //     url: basePath + '/B3/B3D50/tileset.json',
        //     lng: 120.62689780520037,
        //     lat: 30.15868091926733,
        //     x: -14,
        //     d: 'B3D50',
        //     title: 'D50',
        //     height: 23,
        // },
    ]
    return data
}

function queryBuildingData() {
    const build = [
        {
            lat: 30.161300180130663,
            lng: 120.62136430153972,
            heigh: -1.2,
            baseHeight: 0,
            length: 18,
            width: 11,
            height: 2.95,
            id: '安滨嘉苑-D1-106',
            r: 1,
            g: 0,
            b: 0,
            a: 0,
            mz: 55,
        },
    ]
    return build
}

function loadPropertyData() {
    const list = []
    return list
}

function cesiumActionAction(cd) {
    var handler = new Cesium.ScreenSpaceEventHandler(viewer.canvas)
    handler.setInputAction(movement => {
        getCartesianCoordinate(movement.position)
        // var pickedObject = viewer.scene.pick(movement.position)
        // if (Cesium.defined(pickedObject) && pickedObject.primitive) {
        //     if (pickedObject.id) {
        //         getAttribute(pickedObject.id)
        //         console.log('你点击了第' + pickedObject.id + '户')
        //     }
        // }
    }, Cesium.ScreenSpaceEventType.LEFT_CLICK)

    const getCartesianCoordinate = pos => {
        //获取点击位置的经纬度
        let cartesianCoordinate = viewer.scene.pickPosition(pos)
        if (!cartesianCoordinate) {
            return null
        }
        let cartographic =
            Cesium.Cartographic.fromCartesian(cartesianCoordinate) //将笛卡尔坐标转换为地理坐标
        let longitude = Cesium.Math.toDegrees(cartographic.longitude)
        let latitude = Cesium.Math.toDegrees(cartographic.latitude)
        let height = cartographic.height
        let position = {
            longitude: Number(longitude.toFixed(6)),
            latitude: Number(latitude.toFixed(6)),
            altitude: Number(height.toFixed(2)),
        }
        console.log('坐标: ', position)
        cd(position)
        return position
    }
}

/**
 * 计算地理距离 (Haversine公式)
 */
function calculateDistance(pos1, pos2) {
    const R = 6371000 // 地球半径(米)
    const lat1 = (pos1.latitude * Math.PI) / 180
    const lat2 = (pos2.latitude * Math.PI) / 180
    const deltaLat = ((pos2.latitude - pos1.latitude) * Math.PI) / 180
    const deltaLon = ((pos2.longitude - pos1.longitude) * Math.PI) / 180

    const a =
        Math.sin(deltaLat / 2) * Math.sin(deltaLat / 2) +
        Math.cos(lat1) *
            Math.cos(lat2) *
            Math.sin(deltaLon / 2) *
            Math.sin(deltaLon / 2)
    const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a))

    return R * c
}

/**
 * 使用 Haversine 公式计算两个经纬度点之间的距离（以千米为单位）
 * 输入起点和终点
 * @param {*} point1 经纬度数组 [纬度, 经度]
 * @param {*} point2 经纬度数组 [纬度, 经度]
 * @returns {number} 起点到终点的距离（以千米为单位）
 */
function calculateHaversineDistance(point1, point2) {
    // 提取起点和终点的纬度和经度
    const lat1 = point1.latitude || point1.lat //[0];
    const lon1 = point1.longitude || point1.lng //[1];
    const lat2 = point2.latitude || point2.lat //[0];
    const lon2 = point2.longitude || point2.lng //[1];
    // const start = new Cesium.Cartesian3.fromDegrees(lon1,lat1);
    // const end = new Cesium.Cartesian3.fromDegrees(lon2,lat2);

    // const distance = Cesium.Cartesian3.distance(start,end); // 两点直线距离，单位:米
    // return distance

    // 地球半径（千米）
    const earthRadius = 6371000

    // 将角度转换为弧度
    const radLat1 = (Math.PI * lat1) / 180
    const radLat2 = (Math.PI * lat2) / 180
    const deltaLat = (Math.PI * (lat2 - lat1)) / 180
    const deltaLon = (Math.PI * (lon2 - lon1)) / 180

    // Haversine 公式计算
    const a =
        Math.sin(deltaLat / 2) * Math.sin(deltaLat / 2) +
        Math.cos(radLat1) *
            Math.cos(radLat2) *
            Math.sin(deltaLon / 2) *
            Math.sin(deltaLon / 2)
    const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a))

    // 返回距离（以千米为单位）
    return earthRadius * c
}

// 小时分钟格式转换为分钟数
function changeStrToMinutes(str) {
    const arrminutes = str.split(':')
    if (arrminutes.length === 2) {
        return parseInt(arrminutes[0]) * 60 + parseInt(arrminutes[1])
    } else {
        return 0
    }
}

// 设置场景时间
function setMapTime(val) {
    const hours = minutesToTime(val)
    // 设置地图场景时间
    viewer.clock.currentTime = Cesium.JulianDate.fromDate(
        new Date(`${getData()} ${hours}:00`)
    )
    // 设置dom时间显示
    // document.querySelector('.mapScene .mapTimeVal').innerHTML = hours
}
// 分钟转换成小时显示
function minutesToTime(minutes) {
    let hours = Math.floor(minutes / 60)
    let mins = minutes % 60
    // 格式化为两位数的字符串
    hours = hours < 10 ? '0' + hours : hours
    mins = mins < 10 ? '0' + mins : mins
    return hours + ':' + mins
}
function getData() {
    const currentDate = new Date()
    const year = currentDate.getFullYear()
    const month = currentDate.getMonth() + 1
    const day = currentDate.getDate()
    return `${year}/${month}/${day}`
}
